# -*- coding: utf-8 -*-
"""
Created on Thu Aug 17 15:03:56 2023

@author: skunk69
"""

import json

chinese_name = u'Rosenberg自尊量表'
english_name = 'Rosenberg Self-Esteem Scale'
abbreviation = 'RSES'
category = u'自我意识与自尊量表'

outline = u"""根据James和Rosenberg的看法，自尊是个人对自己的较稳定的评价，它表达了对于自己的肯定或否定的态度，表明个人在多大程度上，相信自己是有能力的、重要的、成功的和有价值的。其内涵有3点：①人对自身价值的反思；②在一段时期内相对稳定，但也受到个人生活经验影响而缓慢变化；③自我判断标准会受到现实自我与期望自我之间差距的影响。自尊对个体发展具有非常重要的作用。作为一种个体的内源性保护性因素，自尊与青少年的积极发展和社交障碍、心理障碍的发展息息相关。研究表明，一方面，自尊作为青少年重要的内部心理资源，对青少年的积极发展具有积极的促进作用。它与青少年的心理健康、主观幸福感和生活满意度、创造力等存在正相关。另一方面，它也与青少年的焦虑、抑郁、自杀意念、攻击性等消极行为存在负相关。
Rosenberg自尊量表(Rosenberg Self-Esteem Scale, RSES)由Rosenberg于1965年编制，最初用以评定青少年关于自我价值和自我接纳的总体感受。目前是我国心理学界使用最多的自尊测量工具。"""

instruction = u"""下面是一些关于我们对自己看法的句子，请根据您的真实情况，在“很不符合”、“不符合”、“符合”和“非常符合”中选择一项。"""

with open('RSES.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for line in lines:
    key,value = line.strip().split('.',maxsplit=1)
    items[key] = value.strip()

reverse_items = [3,5,8,9,10]
scales = []
scales_items = []
factors = []
factors_scales = []
rating = [u'很不符合',u'不符合',u'符合',u'非常符合']
score_rules = list(range(1,5))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《Rosenberg自尊量表》属于一个自评量表。"""

reliability = u"""样本来源于初中生群体。基于上述样本得到的内部一致性α系数为0.783，3次重测，每次间隔2个月，重测相关系数为0.51~0.75，平均值0.72。"""
validity = u"""在控制了方法效应（项目表述效应）之后该量表为单因子结构。
熊承清等（2008）在大学生群体中发现RSES得分高的个体趋向于采用“问题解决”和“求助”的应对方式，而得分低者趋向于采取“压抑”、“逃避”和“退缩”的应对方式。谢虹等（2001）在高中生群体中发现，低自尊水平者（低于平均数一个标准差）在SCL-90的所有9个因子上的得分比高自尊水平者高，且差异达到统计学显著水平（P<0.001）。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""首先将反向题目反向计分，所有题目得分之和即为总分。总分越高说明被测者自尊水平越高。"""

applications = u"""自尊一直是心理学研究始终不衰的热点之一，而Rosenberg自尊量表又是这一研究领域使用最广泛的工具。这主要归功于RSES使用方便、信效度良好、跨文化的适应性等诸多优点。然而一直以来国内研究中存在着第8题的“困惑”，直到最近（2008）这个问题才得到解决，但翻译问题仍有待改进之处，相对而言，目前版本最好。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)